package com.vhall.component.entity.interactive.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists;
import com.vhall.component.entity.interactive.entity.AnswerEntity;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class QuestionDto implements Serializable {
    private static final long serialVersionUID = -7101672893938874462L;

    /**
     * 主键
     */
    @JsonProperty(value = "id")
    private Long id;

    /**
     * 应用ID
     */
    @JsonProperty(value = "app_id")
    private String appId;

    /**
     * 提问者的用户id
     */
    @JsonProperty(value = "user_id")
    private Long userId;

    /**
     * 是否公开,0公开,1私密,默认0
     */
    @JsonProperty(value = "is_open")
    private Integer isOpen;

    /**
     * 提问用户昵称
     */
    @JsonProperty(value = "nick_name")
    private String nickName;

    /**
     * 提问用户头像
     */
    private String avatar;

    /**
     * 提问内容
     */
    private String content;

    /**
     * 活动ID---消息中就是这个展示，不要修改。
     */
    @JsonProperty(value = "webinar_id")
    private String webinarId;

    /**
     * 状态 0未处理 1不处理 2转给主持人 3 文字回复
     */
    private Integer status;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 是否置顶，1是0否,默认否
     */
    private Integer top;

    /**
     * 关心数
     */
    @JsonProperty(value = "care_count")
    private Integer careCount;

    /**
     * 回答数
     */
    @JsonProperty(value = "answer_count")
    private Integer answerCount;

    /**
     * 同问数
     */
    @JsonProperty(value = "same_count")
    private Integer sameCount;

    /**
     * 业务扩展字段
     */
    private String ext;

    /**
     * 业务单元
     */
    private Integer bu;

    /**
     * 显示状态，0显示1不显示，默认0
     */
    @JsonProperty(value = "is_show")
    private Integer isShow;

    /**
     * 操作时间
     */
    @JsonProperty(value = "operate_time")
    private LocalDateTime operateTime;

    /**
     * 创建时间
     */
    @JsonProperty(value = "created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @JsonProperty(value = "updated_at")
    private LocalDateTime updatedAt;

    /**
     * 删除时间
     */
    @JsonProperty(value = "deleted_at")
    private LocalDateTime deletedAt;

    /**
     * 是否为优质问答，0否1是，默认否
     */
    @JsonProperty(value = "is_quality")
    private Integer isQuality;

    @JsonProperty(value = "role_name")
    private String roleName;

    /**
     * 回答列表---不要修改。
     */
    private List<AnswerEntity> answers = Lists.newArrayList();
}
